iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 7
0
Modern Web

勇者Jason和前端之鑰系列 第 7

【DAY7】將想要顯示的區域定位到版面上(二)float

  • 分享至 

  • xImage
  •  

還記得昨天說到用position:absolute;時,
寫在越後面的element會排列在越上面,
今天要來講float,就不得不先讓大家了解一下z-index了

新手在切版的時候,常常會覺得「為什麼我的東西沒顯示出來?」
其實,有時候他已經出來了。
只是被其他東西蓋住了。

根據在工作室的Ai老師GG所說,
在使用Ai的時候有圖層概念,在網頁上也是一樣的。
除了顯示左右的x軸、上下的y軸,還有一個從螢幕射入你眼的z軸。

在CSS中要改變z軸的位置就要使用z-index。

z-index

救人一命,勝造七層浮屠。

我們的z-index一共有七層,但是我們不附圖。
我們就從最底層開始介紹吧!

最底層 就是網頁本身
點開沒有在修改任何樣式的index.html,就可以看到了。

地下六層層 負的z-index數值

.test{
    z-index:-1;
}

地下五層 block elements

.test{
    display:block;
}

讓element變成block elemnet

地下四層 float element
今天的主角,下面再說。

地下三層 inline element
就是典型的inline element。
也可以在CSS中下

.test{
    display:inline;
}

讓element變成inline elemnet。

地下二層 z-index數值為0

.test{
    z-index:0;
}

地下一層 z-index數值為正

.test{
    z-index:1;
}

注意:越正的排越前面(越接近我們的眼睛)。

在了解z-index後再來了解float,我覺得可以。

float (浮動)

(剛剛打完了要送出,不小心按到重新整理,回來剩下這邊以上...)

首先
index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>test</title>
    <link rel="stylesheet" href="css/style.css" type="text/css">    
</head>
<body>       
    <div class="red">9527</div>
    <div class="green">9528</div>    
    <div class="blue">9529</div>
</body>
</html>

style.css

.red{
    background-color:red;
    width:20%;
    height:50px;
    float:left;
}
.green{
    background-color:green;
    width:30%;
    height:100px;
    float:right;
}
.blue{
    background-color: blue;
    width:40%;
    height:200px;
}

會發現如下圖,紅色被float-left、綠色被float-right,而藍色跑到紅色之後了。
https://ithelp.ithome.com.tw/upload/images/20171226/20107705amOQ9tVVfH.png

這時我們需要清除浮動。
清除浮動的方法有很多,各有利弊。
我當初在學的時候試過7、8種。
有興趣的可以google「清除浮動 八種」。
以下我只介紹2種。

第一種
在最後浮動的地方加入
(浮動與未浮動的交界處)

index.html

<body>       
    <div class="red">9527</div>
    <div class="green">9528</div>
    <div class="clearfix"></div>
    <div class="blue">9529</div>
</body>

style.css

.clearfix{
    clear:both;
}

這種方法很簡單,但是會產生一個為了清除浮動的。
如果網頁其他地方也有浮動就需要在下一次。
但是無法確定.clearfix是在最後一個。

第二種 給偽元素
將float的地方包起來,然後給偽元素。

index.html

<body>
    <div class="main">
        <div class="red">9527</div>
        <div class="green">9528</div>
    </div>
    <div class="blue">9529</div>
</body>

style.css

.main::after{
    content:"";
    display:block;
    clear:both;
}

偽元素就像是在元素的最前(::before)或最後(::after)加入一個不會顯示的element,
而且不會影響畫面,這樣即可完成清除浮動。

https://ithelp.ithome.com.tw/upload/images/20171226/20107705erSAsDZwjN.png


上一篇
【DAY6】將想要顯示的區域定位到版面上(一)position
下一篇
【DAY8】版本控制-git和它的GUI:Sourcetree(一)
系列文
勇者Jason和前端之鑰32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言